struct _DEVICE_OBJECT// Size=0x150
{
    short Type;// Offset=0x0 Size=0x2
    unsigned short Size;// Offset=0x2 Size=0x2
    long ReferenceCount;// Offset=0x4 Size=0x4
    struct _DRIVER_OBJECT * DriverObject;// Offset=0x8 Size=0x8
    struct _DEVICE_OBJECT * NextDevice;// Offset=0x10 Size=0x8
    struct _DEVICE_OBJECT * AttachedDevice;// Offset=0x18 Size=0x8
    struct _IRP * CurrentIrp;// Offset=0x20 Size=0x8
    struct _IO_TIMER * Timer;// Offset=0x28 Size=0x8
    unsigned long Flags;// Offset=0x30 Size=0x4
    unsigned long Characteristics;// Offset=0x34 Size=0x4
    struct _VPB * Vpb;// Offset=0x38 Size=0x8
    void * DeviceExtension;// Offset=0x40 Size=0x8
    unsigned long DeviceType;// Offset=0x48 Size=0x4
    char StackSize;// Offset=0x4c Size=0x1
    union <anonymous-tag> Queue;// Offset=0x50 Size=0x48
    unsigned long AlignmentRequirement;// Offset=0x98 Size=0x4
    struct _KDEVICE_QUEUE DeviceQueue;// Offset=0xa0 Size=0x28
    struct _KDPC Dpc;// Offset=0xc8 Size=0x40
    unsigned long ActiveThreadCount;// Offset=0x108 Size=0x4
    void * SecurityDescriptor;// Offset=0x110 Size=0x8
    struct _KEVENT DeviceLock;// Offset=0x118 Size=0x18
    unsigned short SectorSize;// Offset=0x130 Size=0x2
    unsigned short Spare1;// Offset=0x132 Size=0x2
    struct _DEVOBJ_EXTENSION * DeviceObjectExtension;// Offset=0x138 Size=0x8
    void * Reserved;// Offset=0x140 Size=0x8
};